#ifndef __LEVEL__HPP__
#define __LEVEL__HPP__

#include <string>

namespace Logs
{
    class Level
    {
    public:
        enum class Value
        {
            UNKNOW = 0,
            DEBUG,
            INFO,
            WARN,
            ERROR,
            FATAL,
            OFF
        };
        static std::string To_String(const Value& level)
        {
            switch (level)
            {
                case Value::UNKNOW: return "UNKNOW" ;
                case Value::DEBUG : return "DEBUG" ;
                case Value::INFO : return "INFO" ;
                case Value::WARN : return "WARN" ;
                case Value::ERROR : return "ERROR" ;
                case Value::FATAL : return "FATAL" ;
                case Value::OFF : return "OFF" ;
            }
            return "UNKNOW";
        }
        // static std::string To_String(const Value& level)
        // {
        //     static std::unordered_map<Value,std::string> dic = 
        //     { 
        //         // 未知日志等级。
        //         // { Value::UNKNOW, "UNKNOW" } ,
        //         { Value::DEBUG , "DEBUG" },
        //         { Value::INFO , "INFO" },
        //         { Value::WARN , "WARN" },
        //         { Value::ERROR , "WARN" },
        //         { Value::FATAL , "FATAL" },
        //         { Value::OFF , "OFF" }
        //     };

        //     if(dic.find(level) == dic.end())
        //     {
        //         return "UNKNOW";
        //     }

        //     return dic[level];
        // }
    private:
    };
}

#endif